home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / Events.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  5.8 KB  |  235 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Events.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __EVENTS__
  13. #define __EVENTS__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __QUICKDRAW__
  23. #include <Quickdraw.h>
  24. /*    #include <QuickdrawText.h>                                    */
  25. /*        #include <IntlResources.h>                                */
  26. #endif
  27.  
  28. #ifndef __OSUTILS__
  29. #include <OSUtils.h>
  30. #endif
  31.  
  32. enum  {
  33.     nullEvent                    = 0,
  34.     mouseDown                    = 1,
  35.     mouseUp                        = 2,
  36.     keyDown                        = 3,
  37.     keyUp                        = 4,
  38.     autoKey                        = 5,
  39.     updateEvt                    = 6,
  40.     diskEvt                        = 7,
  41.     activateEvt                    = 8,
  42.     osEvt                        = 15,
  43. /* event mask equates */
  44.     mDownMask                    = 2,
  45.     mUpMask                        = 4,
  46.     keyDownMask                    = 8,
  47.     keyUpMask                    = 16,
  48.     autoKeyMask                    = 32,
  49.     updateMask                    = 64,
  50.     diskMask                    = 128,
  51.     activMask                    = 256,
  52.     highLevelEventMask            = 1024,
  53.     osMask                        = -32768
  54. };
  55.  
  56. enum  {
  57.     everyEvent                    = -1,
  58. /* event message equates */
  59.     charCodeMask                = 0x000000FF,
  60.     keyCodeMask                    = 0x0000FF00,
  61.     adbAddrMask                    = 0x00FF0000,
  62.     osEvtMessageMask            = (long)0xFF000000,
  63. /* OS event messages.  Event (sub)code is in the high byte of the message field. */
  64.     mouseMovedMessage            = 0xFA,
  65.     suspendResumeMessage        = 0x01,
  66.     resumeFlag                    = 1,                            /* Bit 0 of message indicates resume vs suspend */
  67.     convertClipboardFlag        = 2,                            /* Bit 1 in resume message indicates clipboard change */
  68. /* modifiers */
  69.     activeFlag                    = 1,                            /* Bit 0 of modifiers for activateEvt and mouseDown events */
  70.     btnState                    = 128,                            /* Bit 7 of low byte is mouse button state */
  71.     cmdKey                        = 256,                            /* Bit 0 */
  72.     shiftKey                    = 512,                            /* Bit 1 */
  73.     alphaLock                    = 1024,                            /* Bit 2 */
  74.     optionKey                    = 2048,                            /* Bit 3 of high byte */
  75.     controlKey                    = 4096,
  76. /* obsolete equates */
  77.     networkEvt                    = 10,
  78.     driverEvt                    = 11,
  79.     app1Evt                        = 12,
  80.     app2Evt                        = 13
  81. };
  82.  
  83. enum  {
  84.     app3Evt                        = 14,
  85.     app4Evt                        = 15,
  86.     networkMask                    = 1024,
  87.     driverMask                    = 2048,
  88.     app1Mask                    = 4096,
  89.     app2Mask                    = 8192,
  90.     app3Mask                    = 16384,
  91.     app4Mask                    = -32768
  92. };
  93.  
  94. #if defined(powerc) || defined (__powerc)
  95. #pragma options align=mac68k
  96. #endif
  97. struct EventRecord {
  98.     short                        what;
  99.     long                        message;
  100.     long                        when;
  101.     Point                        where;
  102.     short                        modifiers;
  103. };
  104. #if defined(powerc) || defined(__powerc)
  105. #pragma options align=reset
  106. #endif
  107.  
  108. typedef struct EventRecord EventRecord;
  109.  
  110. typedef long KeyMap[4];
  111.  
  112. #if defined(powerc) || defined (__powerc)
  113. #pragma options align=mac68k
  114. #endif
  115. struct EvQEl {
  116.     QElemPtr                    qLink;
  117.     short                        qType;
  118.     short                        evtQWhat;                        /*this part is identical to the EventRecord as...*/
  119.     long                        evtQMessage;                    /*defined in ToolIntf*/
  120.     long                        evtQWhen;
  121.     Point                        evtQWhere;
  122.     short                        evtQModifiers;
  123. };
  124. #if defined(powerc) || defined(__powerc)
  125. #pragma options align=reset
  126. #endif
  127.  
  128. typedef struct EvQEl EvQEl;
  129.  
  130. typedef EvQEl *EvQElPtr;
  131.  
  132. enum  {
  133.     uppGNEFilterProcInfo        = SPECIAL_CASE_PROCINFO(kSpecialCaseGNEFilterProc)
  134. };
  135.  
  136. #if USESROUTINEDESCRIPTORS
  137. typedef void (*GetNextEventFilterProcPtr)(EventRecord *theEvent, Boolean *result);
  138.  
  139. typedef UniversalProcPtr GNEFilterUPP;
  140.  
  141. #define CallGNEFilterProc(userRoutine, theEvent, result)  \
  142.     CallUniversalProc((UniversalProcPtr)(userRoutine), uppGNEFilterProcInfo, theEvent, result)
  143.  
  144. #define NewGNEFilterProc(userRoutine)  \
  145.     (GNEFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppGNEFilterProcInfo, GetCurrentISA())
  146.  
  147. #else
  148. typedef ProcPtr GNEFilterUPP;
  149.  
  150. #define NewGNEFilterProc(userRoutine)  \
  151.     (GNEFilterUPP)(userRoutine)
  152.  
  153. #endif
  154.  
  155. #ifdef __cplusplus
  156. extern "C" {
  157. #endif
  158.  
  159. extern pascal Boolean GetNextEvent(short eventMask, EventRecord *theEvent)
  160.  ONEWORDINLINE(0xA970);
  161. extern pascal Boolean WaitNextEvent(short eventMask, EventRecord *theEvent, unsigned long sleep, RgnHandle mouseRgn)
  162.  ONEWORDINLINE(0xA860);
  163. extern pascal Boolean EventAvail(short eventMask, EventRecord *theEvent)
  164.  ONEWORDINLINE(0xA971);
  165. extern pascal void GetMouse(Point *mouseLoc)
  166.  ONEWORDINLINE(0xA972);
  167. extern pascal Boolean Button(void)
  168.  ONEWORDINLINE(0xA974);
  169. extern pascal Boolean StillDown(void)
  170.  ONEWORDINLINE(0xA973);
  171. extern pascal Boolean WaitMouseUp(void)
  172.  ONEWORDINLINE(0xA977);
  173. extern pascal void GetKeys(KeyMap theKeys)
  174.  ONEWORDINLINE(0xA976);
  175. extern pascal long KeyTranslate(const void *transData, short keycode, long *state)
  176.  ONEWORDINLINE(0xA9C3);
  177. extern pascal unsigned long TickCount(void)
  178.  ONEWORDINLINE(0xA975);
  179. #if USESCODEFRAGMENTS
  180. extern pascal long GetDblTime(void);
  181. extern pascal long GetCaretTime(void);
  182. extern pascal QHdrPtr GetEvQHdr(void);
  183. #else
  184. #define GetDblTime() (* (unsigned long*) 0x02F0)
  185.  
  186. #define GetCaretTime() (* (unsigned long*) 0x02F4)
  187.  
  188. #define GetEvQHdr() ((QHdrPtr) 0x014A)
  189.  
  190. #endif
  191.  
  192.  
  193. #if USES68KINLINES
  194. #pragma parameter __D0 PostEvent(__A0, __D0)
  195. #endif
  196. extern pascal OSErr PostEvent(short eventNum, long eventMsg)
  197.  ONEWORDINLINE(0xA02F);
  198.  
  199. #if USES68KINLINES
  200. #pragma parameter __D0 PPostEvent(__A0, __D0, __A1)
  201. #endif
  202. extern pascal OSErr PPostEvent(short eventCode, long eventMsg, EvQElPtr *qEl)
  203.  TWOWORDINLINE(0xA12F, 0x2288);
  204.  
  205. #if USES68KINLINES
  206. #pragma parameter __D0 OSEventAvail(__D0, __A0)
  207. #endif
  208. extern pascal Boolean OSEventAvail(short mask, EventRecord *theEvent)
  209.  TWOWORDINLINE(0xA030, 0x5240);
  210.  
  211. #if USES68KINLINES
  212. #pragma parameter __D0 GetOSEvent(__D0, __A0)
  213. #endif
  214. extern pascal Boolean GetOSEvent(short mask, EventRecord *theEvent)
  215.  TWOWORDINLINE(0xA031, 0x5240);
  216. extern pascal void FlushEvents(short whichMask, short stopMask)
  217.  TWOWORDINLINE(0x201F, 0xA032);
  218.  
  219. #if USES68KINLINES
  220. #pragma parameter  SetEventMask(__D0)
  221. #endif
  222. extern pascal void SetEventMask(short theMask)
  223.  TWOWORDINLINE(0x31C0, 0x0144);
  224. #if OLDROUTINENAMES
  225. #define KeyTrans(transData, keycode, state) KeyTranslate(transData, keycode, state)
  226.  
  227. #endif
  228.  
  229. #ifdef __cplusplus
  230. }
  231. #endif
  232.  
  233. #endif
  234.  
  235.